package com.example.pcl.service;

import com.example.pcl.pojo.dto.*;
import com.example.pcl.pojo.entity.Users;
import com.baomidou.mybatisplus.extension.service.IService;
import com.example.pcl.pojo.vo.UserVo;
import com.example.pcl.result.PageResult;

import java.util.List;

/**
 * <p>
 * 用户表，存储所有用户信息 服务类
 * </p>
 *
 * @author xx
 * @since 2024-12-17
 */
public interface IUsersService extends IService<Users> {

    PageResult<?> pageList(UserQueryDto queryDto);

    void updateUserInfo(UserDto userDto);

    void deleteBatch(List<Integer> ids);

    /**
     * 用户注册
     *
     * @param registerDto 注册信息
     */
    void register(RegisterDto registerDto);

    /**
     * 用户登录
     *
     * @param loginDto 登录信息
     * @return 生成的JWT token
     */
    String login(LoginDto loginDto);


    /**
     * 用户修改密码
     *
     * @param changePasswordDto 修改密码信息
     */
    void changePassword(ChangePasswordDto changePasswordDto);


    void resetPassword(Integer userId);

    void addUser(UserDto userDto);

    UserVo finById(Integer userId);
}
